﻿using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

/// <summary>
/// Descripción breve de GestionJuegos
/// </summary>
public class GestionJuegos
{
    static GestionJuegos instance;
    public static GestionJuegos getInstance()
    {
        if (instance == null)
        {
            instance = new GestionJuegos();
        }
        return instance;
    }
	private GestionJuegos()
	{
	}
    public JuegoBeans dameJuego(String idJuego)
    {
        SqlConnection con = Conexion.getConexion();
        JuegoBeans j;
        con.Open();
        try
        {
            SqlDataReader myReader = null;
            j = new JuegoBeans();
            SqlCommand myCommand = new SqlCommand("select * from Juego where idJuego='" + idJuego + "'", con);
            myReader = myCommand.ExecuteReader();
            if (myReader.Read())
            {
                j.setIdJuego(myReader["IdJuego"].ToString());
                j.setFechaAlta(myReader["FechaAlta"].ToString());
                j.setFechaBaja(myReader["FechaBaja"].ToString());
                int max = int.Parse(myReader["NJugadores"].ToString());
                j.setMaxJugadores(max);
                j.setNombreJuego(myReader["NombreJuego"].ToString());
            }
        }
        catch (Exception e)
        {
            Console.WriteLine(e.ToString());
            return null;
        }
        con.Close();
        return j;
    }
    public String getNombreJuego(String id)
    {
        JuegoBeans j = this.dameJuego(id);
        return j.getNombreJuego();
    }

    public double demoJuego(Usuario u, MesaBeans m, double apuesta)
    {
        double apuestaOrig=apuesta;
        Random objeto = new  Random();
    	int numero = objeto.Next(0, 10);
        double benCasino = apuesta * 0.01;
        apuesta = apuesta - benCasino;
        if (numero >= 5)
        {
            //Gana
            apuesta=apuesta*2;
            
        }
        else
        {
            //pierde
            apuesta = -apuestaOrig;
        }

        GestionUsuarios.getInstance().realizarIngreso(u, apuesta-apuestaOrig);
        realizaJuaga(m, u, apuesta, benCasino, apuestaOrig);
        return apuesta;
    }

    public void realizaJuaga(MesaBeans m, Usuario u, double ganancias, double benCasino, double apuesta)
    {
        String gananciasT = ganancias.ToString();
        gananciasT=gananciasT.Replace(',', '.');

        String benCasinoT= benCasino.ToString();
        benCasinoT=benCasinoT.Replace(',', '.');

        String apuestaT= apuesta.ToString();
        apuestaT=apuestaT.Replace(',', '.');

        SqlConnection con = Conexion.getConexion();
        con.Open();
        String SQL = "INSERT INTO [casino].[dbo].[Jugada]"+
           "([IdMesa]"+
           ",[IdUsuario]"+
           ",[Apostado]"+
           ",[Ganado]"+
           ",[FechaJuego]"+
           ",[GCasino])"+
     "VALUES"+
           "('"+m.getIdMesa()+"'"+
           ",'"+u.getIdUsuario()+"'"+
           ","+apuestaT+""+
           ","+gananciasT+""+
           ",'" + DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToLongTimeString().Substring(0, 8) + "'" +
           ","+benCasinoT+")";

        String f = DateTime.Now.ToShortTimeString().Substring(0,5);
        SqlCommand comando = new SqlCommand(SQL, con);
        int i = comando.ExecuteNonQuery();

        con.Close();
    }
}
